package com.sprouting.ops.model.qo;

import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.enums.ComputerSpecialEnum;
import com.sprouting.ops.model.OpsSite;
import lombok.Data;

/**
 * 机器和主机查询
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2023/11/8 17:52
 */
@Data
public class OpsComputerServerQo extends BaseQuery{

    /**
     * 隶属场所
     * @see OpsSite#getId()
     */
    @CheckNotNull(message = "请选择现场")
    private String siteId;
    /**
     * 机器名称，别名,这个主机的别名
     */
    private String name;
    /**
     * ip地址，做多支持5个，逗号分隔
     */
    private String ips;
    /**
     * 云主机类型-华为云，阿里云;为云主机则一定为虚拟机
     * @see com.sprouting.ops.enums.CloudTypeEnum
     */
    private Integer cloudType;
    /**
     * 是否虚拟机、物理机
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#YES 是虚拟机
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#NO 物理机
     */
    private Integer vm;
    /**
     * 计算机主机名
     */
    private String hostName;
    /**
     * 是否堡垒机\跳板机\网关。特殊机器
     * @see ComputerSpecialEnum
     */
    private Integer special;
    /**
     * 使用状态，使用，停用
     * @see com.sprouting.ops.interfaces.ConstantBase.Use
     */
    private Integer useStatus;
    /**
     * 系统类型，一般Windows、Linux
     * @see com.sprouting.ops.interfaces.ConstantBase.OsType
     */
    private Integer os;
    /**
     * 是否关键节点
     * @see com.sprouting.ops.interfaces.ConstantBase.YesOrNo#YES 关键节点
     */
    private Integer linchpin;
}
